package main

import (
	"fmt"
	"io/ioutil"
	"os"
	"path"
	"path/filepath"
	"strings"
)

func main()  {
	var in,newFileExt,com string
	var num int
	fmt.Println("========== 批量修改文件后缀 ============ \n")
	fmt.Println("请输入需要改变的文件后缀：")
	fmt.Scanln(&in);
	println("请输入新的文件后缀：")
	fmt.Scanln(&newFileExt);
	fmt.Println("符合本次修改的文件如下：")
	fmt.Println("---------------------------------------------------------")
	dirRoot,_ := ioutil.ReadDir("./")
	for _,f:= range dirRoot {
		if path.Ext("./"+f.Name()) == "."+in {
			fmt.Println(filepath.Base(f.Name()))
			num++
		}
	}
	fmt.Println("---------------------------------------------------------")
	fmt.Printf("您是否确定将 %d 个 %s 文件，修改为 %s 文件：(yes|no)\n",num,in,newFileExt)
	fmt.Scanln(&com)
	if com == "no" {
		fmt.Println("已取消操作")
		os.Exit(404)
	}
	fmt.Println("正在操作批量修改，请稍等......")

	for _,f:= range dirRoot {
		ext:=path.Ext(f.Name())
		if ext== "."+in {
			newFileName := strings.TrimSuffix(f.Name(),ext) + "."+newFileExt
			os.Rename(f.Name(),newFileName)
		}
	}

	fmt.Println("已完成")
}
